/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package com.adsi.logica;

import com.adsi.modelo.Cuentas;
import com.adsi.persistencia.IClienteDAO;
import com.adsi.persistencia.ICuentasDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author Estudiante
 */
@Stateless
public class LogicaCuentas implements LogicaCuentasLocal{
    
    @EJB
    private ICuentasDAO cuentasDAO;
    
    @EJB
    private IClienteDAO clienteDAO;

    @Override
    public void registrar(Cuentas cuentas) throws Exception {
        Cuentas objCuenta=cuentasDAO.ConsultarPorNumero(cuentas.getCueNumero());
        
        if(objCuenta!=null)
        {
            throw new Exception("La cuenta ya se encuentra registrada");
        }
        if(cuentas.getCueNumero()==null)
        {
            throw new Exception("No ha ingresado el numero de la cuenta");
        }
        if(cuentas.getCliCedula()==null)
        {
            throw new Exception("No ha ingresado la cedula del cliente");
        }
        if(cuentas.getCueSaldo()==null)
        {
            throw new Exception("No ha ingresado el saldo de la cuenta");
        }
        if(cuentas.getCueClave()==null)
        {
            throw new Exception("No ha ingresado su clave");
        }
        cuentasDAO.registrar(cuentas);
          
    }

    @Override
    public void modificar(Cuentas cuentas) throws Exception {
        Cuentas objCuenta=cuentasDAO.ConsultarPorNumero(cuentas.getCueNumero());
        
        if(objCuenta==null)
        {
            throw new Exception("La cuenta no se encuentra registrada");
        }
        if(cuentas.getCueNumero()==null)
        {
            throw new Exception("No ha ingresado el numero de la cuenta");
        }
        if(cuentas.getCliCedula()==null)
        {
            throw new Exception("No ha ingresado la cedula del cliente");
        }
        if(cuentas.getCueSaldo()==null)
        {
            throw new Exception("No ha ingresado el saldo de la cuenta");
        }
        if(cuentas.getCueActiva()==null)
        {
            throw new Exception("Por favor indique si la cuenta esta activa");
        }
        cuentasDAO.modificar(cuentas);
    }

    @Override
    public void eliminar(Cuentas cuentas) throws Exception {
        Cuentas objCuenta=cuentasDAO.ConsultarPorNumero(cuentas.getCueNumero());
        
        if(objCuenta==null)
        {
            throw new Exception("La cuenta no se encuentra registrada");
        }
        cuentasDAO.eliminar(objCuenta);
    }

    @Override
    public List<Cuentas> consultar() throws Exception {
        return cuentasDAO.consultar();
    }

    @Override
    public Cuentas ConsultarPorNumeros(String cue_numero) throws Exception{
        if(cue_numero == null)
        {
            throw new Exception("No ha ingresado el numero de la cuenta");
        }
        return cuentasDAO.ConsultarPorNumero(cue_numero);
    }

    
}
